手把手教你免费内网穿透

你是否有过很想把内网的网页放到公网让大家也可以访问?你是否很想把搭建的 OJ 放到公网?今天,我来教大家内网穿透的具体操作步骤。

0 准备工作

首先,你需要准备如下材料:

  • 一台电脑
  • 一个 localhost 网页(即 localhost:xxx127.0.0.1:xxx
  • (选)一个可以解析的域名(国内服务器需要备案)

1 注册 Ngrok 账号

Ngrok 官网点击注册,注册一个新账号并登录,此时应该看到如下界面:

其中“开通隧道”处应为 0 / 0 / 0,这里有数字是因为我已经进行了后续操作。

2 开通隧道

点击左侧导航栏“隧道管理→开通隧道”,划到最下面“美国 Ngrok 免费服务器”,点击按钮“立即购买”。当然如果你是土豪选择买一个付费隧道也可以。

3 配置隧道

做完上面的操作后看到如下界面:

隧道名称栏可以随便填,只是方便记忆。隧道协议选择 http。前置域名填写一个由字母、数字、减号、下划线组成的字符串,是你想要的域名前缀地址,最后你的网站会在这个子域名显示。本地端口是你本地的访问地址,一般是 localhost:80 / 127.0.0.1:80,不用改;否则把冒号后面的端口号改成你的端口。http 验证用户名http 验证密码空着即可。

配置完上面的内容,点击“确认添加”即可。

4 设置自定义域名

例如这里我的前置域名写的是 akioi,那么一会访问地址就会在前置域名那栏那个网址。如果您不想把网站放到自己的域名,请忽略此步骤。

域名类型选择“使用自定义域名”,在自定义域名里面填写你想放到的网址,划到最下面“确认修改”。

5 开通映射服务

这里作者主要讲解 Windows 与 Linux 的开通方法,其他系统也可以上网百度的到。

回到隧道管理界面,看到

点击“客户端下载”,选择自己的操作系统,下载,将 zip 文件解压。

5.1 Linux

作者本人是用 Linux 虚拟机搭建了一个 OJ,所以使用的是 Linux 的方法。

打开命令行,cd 到解压后的文件夹里,有一个 sunny 文件。此时输入命令 ./sunny clientid <xxx>,其中 <xxx> 换成你的隧道 id(见上图),看到 Tunnel Status Online 就代表成功了。

5.2 Windows

打开 cmd,cd 到文件夹,输入指令 ngrok -authtoken <id> -subdomain <subdomain> <port>,其中 <id>,<subdomain>,<port> 分别是隧道 id、二级域名和端口,判定成功的条件和 Linux 一样。

6 尽情享用吧!

作者通过这种方式把虚拟机 http://127.0.0.1:80 映射到了 http://oj.ak-ioi.cf。你也可以在你的自定义域名或默认域名找到你的网站。

7 常见错误

  • Q:我配置了隧道为什么访问不了?
  • A:配置完隧道还要开通服务才能显示哦~
  • Q:为什么 Tunnel Status 显示 Reconnecting?
  • A:因为 ngrok 的服务不太稳定,大概等一小会就好了;如果没有好,可以检查一下自己的网络连接。具体可以看 ngrok 官方 wiki。
  • Q:官方 wiki 没有包含我的问题怎么办?
  • A:可以先到洛谷私信 rui_er,如果他也不会可以加入 ngrok QQ 群提问。

8 优点缺点

优点有免费、简单;但是缺点是连接可能不太稳定,且延时较大。不过瑕不掩瑜,不影响整体运行。

欢迎大家到我的 OJ 来参观!